|
AutoCAD VBA : Zugriff aus Excel
marcosevim am 22.02.2011 um 07:53 Uhr (0)
Hallo, ich frag mal hier weiter, da der Titel auch zu meiner Frage passt Hab folgenden Code getestet: aber es kommt die Fehlermeldung Zitat:Fehler beim kompilieren: Benutzerdefinierter Typ nicht definiertIch möchte lernen wie man vom Excel aus das ACAD anspricht.Dazu das folgende Programm wo einfach ein Kreis im ACAD gezeichent werden soll.Der Code soll aber im EXCEL VBA gestartet werden.Code:Sub test()On Error Resume NextErr.ClearSet ACADServer = GetObject(, "AutoCad.Application.15")If Err.Number = 0 The ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Zugriff aus Excel
marcosevim am 22.02.2011 um 09:59 Uhr (0)
Hallo,nein Leider.Der Code sieht nun folgend aus:Code:Sub test()On Error Resume NextErr.ClearSet ACADServer = GetObject(, "AutoCad.Application.18")If Err.Number = 0 Then AutoCADVersion = "2010" Exit SubEnd IfDim Kreis As AcadCircleDim Zentrum(0 To 2) As DoubleDim Radius As DoubleZentrum(0) = 0: Zentrum(1) = 0: Zentrum(2) = 0Radius = 100.5Set Kreis = ACADServer.ActiveDocument.ModelSpace.AddCircle(Zentrum, Radius)End SubEs kommt keine Fehlermeldung, Kreis wird aber ganz sicher keiner gezeichent. Weder bei ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Zugriff aus Excel
marcosevim am 22.02.2011 um 08:33 Uhr (0)
Hallo und Danke.Die Verweise habe ich gefunden udn gesetzt. Hoffe ich halt. Er schreibt zumindest keine Fehlermeldung mehr.Er macht nun nämlich gar nichts mehr. Wenn ich mit F8 durchgehe sehe ich das er immer in das erste IF läuft. und dann bei EXIT SUB austeigt.Wieso?Grüsse
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Zugriff aus Excel
marcosevim am 22.02.2011 um 08:35 Uhr (0)
Code sieht jetzt so aus:Code:Sub test()On Error Resume NextErr.ClearSet ACADServer = GetObject(, "AutoCad.Application.18")If Err.Number = 0 Then AutoCADVersion = "2010" Exit SubEnd IfDim Kreis As AcadCircleDim Zentrum(0 To 2) As DoubleDim Radius As DoubleZentrum(0) = 0: Zentrum(1) = 0: Zentrum(2) = 0Radius = 100.5Set Kreis = ACADServer.ActiveDocument.ModelSpace.AddCircle(Zentrum, Radius)End Sub
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Zugriff aus Excel
marcosevim am 22.02.2011 um 10:36 Uhr (0)
Hallo,hab nochmal alles geschlossen und wieder neu geöffnet um zu kontrollieren ob im Hintergrund wirklich ein ACAD da ist. Nun geht es aber ohne Probleme. Der Kreis wird im aktiven ACAD eingetragen. Kein zweites ACAD im Hintergrund.Ich versteh überhaupt nicht warum es vorher nicht gegangen ist.Ich werd morgen Früh wenn der Rechner neu hochgefahren wurde nochmal den alten Code verwenden.Dann weiss ich ganz sicher ob der alte Code in Ordnung ist.Grüsse und Danke Marco
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Zugriff aus Excel
marcosevim am 22.02.2011 um 09:06 Uhr (0)
Habs mit folgendem Code versucht.Einmal wenn kein ACAD offen ist und einmal wenn es frisch geöffnet wurde.Code:Sub test()On Error Resume NextErr.ClearSet ACADServer = GetObject(, "AutoCad.Application.18")If Err.Number = 0 Then AutoCADVersion = "2010" Exit SubEnd IfDim Kreis As AcadCircleDim Zentrum(0 To 2) As DoubleDim Radius As DoubleZentrum(0) = 0: Zentrum(1) = 0: Zentrum(2) = 0Radius = 100.5Set Kreis = ACADServer.ActiveDocument.ModelSpace.AddCircle(Zentrum, Radius)End SubEr läuft ohne Fehlermeldung du ...
|
| In das Form AutoCAD VBA wechseln |
|
AutoCAD VBA : Zugriff aus Excel
marcosevim am 22.02.2011 um 10:15 Uhr (0)
Ok Mach ich auch gleich. Ev gehts aber nun.Hab ein paar Sachen die ich so gefunden habe zusammenkopiert.Schaut nun so aus:Code:Option ExplicitPublic acadPublic MspacePublic DrawingPublic ssetSub init()On Error Resume Next Set acad = GetObject(, "AutoCAD.Application") If Err 0 Then MsgBox "Zuerst das DWG-File öffnen, und dann ausführen!!" Exit Sub End If acad.Visible = True Set Mspace = acad.ActiveDocument.ModelSpace Set Drawing = acad.ActiveDocumentEnd SubSub test()Call initDim Kreis As AcadCi ...
|
| In das Form AutoCAD VBA wechseln |